export class PointImpl {
    // x: number
    // y: number
    // constructor(x?: number, y: number=3) {
    //     this.x = x
    //     this.y = y
    // }
    // constructor(public x: number, public y: number = 3) { }
    constructor(_x, _y = 3) {
        this._x = _x;
        this._y = _y;
        this.drawPoint = () => {
            console.log('x:', this._x, ' y:', this._y);
        };
        this.getDistances = (p) => {
            return Math.pow(p.X - this._x, 2) + Math.pow(p.getY() - this._y, 2);
        };
        // setX = (value: number) => {
        //     if (value < 0) {
        //         throw new Error('value不能小于0')
        //     }
        //     this.x = value
        // }
        // getX = () => {
        //     return this.x
        // }
        this.setY = (value) => {
            if (value < 0) {
                throw new Error('value不能小于0');
            }
            this._y = value;
        };
        this.getY = () => {
            return this._y;
        };
    }
    set X(value) {
        if (value < 0) {
            throw new Error('value不能小于0');
        }
        this._x = value;
    }
    get X() {
        return this._x;
    }
}
